package canchaFulbito.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


import canchaFulbito.excepcion.DAOExcepcion;
import canchaFulbito.modelo.Servicio;
import canchaFulbito.util.ConexionBD;
import canchaFulbito.dao.BaseDAO;

public class ServicioDAO extends BaseDAO {

	public void insertar(Servicio se) throws DAOExcepcion {
		System.out.println("ServicioDAO: insertar(Servicio se)");
		String query = "INSERT INTO Servicio(idServicio,NomServicio,Descripcion,Costo) values(?,?,?,?)";
		
		Connection con = null;
		PreparedStatement stmt = null;
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			
			stmt.setInt(1, se.getIdServicio());
			stmt.setString(2, se.getNomServicio());
			stmt.setString(3, se.getDescripcion());
			stmt.setDouble(4, se.getCosto());
			
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
	}
	
	public int obtener_idServicio() throws DAOExcepcion {
			int id=0;
			Connection con = null;
			PreparedStatement stmt = null;
			ResultSet rs = null;
			try {
				String query = "Select COALESCE(max(idServicio),0) idServicio From Servicio" ;
				con = ConexionBD.obtenerConexion();
				stmt = con.prepareStatement(query);
				rs = stmt.executeQuery();
				if (rs.next()) 
					{
						id = Integer.parseInt(rs.getString("idServicio")) + 1 ;
					}
					
			} catch (SQLException e) {
				System.err.println(e.getMessage());
				throw new DAOExcepcion(e.getMessage());
			} finally {
				this.cerrarResultSet(rs);
				this.cerrarStatement(stmt);
				this.cerrarConexion(con);
			}
			
				System.out.print("idServicio : " + id);
				
		return id;
	}
	
	}

